package com.weu.contorller;

import com.weu.bean.UserType;
import com.weu.mapper.UserTypeMapper;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

//@RestController
@Controller
public class UserTypeController {


    @Resource
    UserTypeMapper userTypeMapper;

    /**
     * 查询指定ID的角色
     *
     * @param id
     * @param model
     * @return
     */
    /*
    @GetMapping("/userType/{id}")
    public String getUserType(@PathVariable("id") int id, Model model) {
//        return userTypeMapper.getUserTypeById(id);
        UserType userType = userTypeMapper.getUserTypeById(id);
        model.addAttribute("uType", userType);
        return "success";
    }
*/
    /**
     * 查询显示所有角色列表
     *
     * @param model
     * @return
     */
    @GetMapping("/userTypes")
    public String getUserTypes(Model model) {
//        Collection<UserType> userTypes = userTypeMapper.getUserTypes();
        List<UserType> userTypes = (List<UserType>) userTypeMapper.getUserTypes();
        model.addAttribute("userTypes", userTypes);
        return "usertype/list";
    }

    //来到角色添加页面
    @GetMapping("/userType")
    public String toAddPage(Model model) {
        return "usertype/save";
    }

    //角色添加
    //SpringMVC自动将请求参数和入参对象的属性进行一一绑定；要求请求参数的名字和javaBean入参的对象里面的属性名是一样的
    @PostMapping("/userType")
    public String addUserType(UserType userType) {
        //来到员工列表页面
        System.out.println("保存的角色信息：" + userType);
        //保存角色
        userTypeMapper.insertUserType(userType);
        // redirect: 表示重定向到一个地址  /代表当前项目路径
        // forward: 表示转发到一个地址
        return "redirect:/userTypes";
    }


    //  来到修改页面
    @GetMapping("/userType/{id}")
    public String toEditPage(@PathVariable("id") int id, Model model){
        UserType userType = userTypeMapper.getUserTypeById(id);
        model.addAttribute("userType", userType);
        return "usertype/edit";
    }

    //  角色修改
    @PutMapping("/userType")
    public String editUserType(UserType userType){
        System.out.println("修改的角色信息：" + userType);
        // 修改角色
        userTypeMapper.updateUserType(userType);
        //  修改成功后跳转到展示页面
        return "redirect:/userTypes";
    }


    @DeleteMapping("/userType/{id}")
    public String deleteEmployee(@PathVariable("id") int id) {
        userTypeMapper.deleteUserTypeById(id);
        //  删除成功后跳转到展示页面
        return "redirect:/userTypes";
    }

}
